﻿using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Collections.Generic;
using MySql.Data.MySqlClient;


public class PedidoDAO
{
    MySqlConnection connection = Database.getInstance.getConnection();

    public PedidoDAO()
    {

    }

    public List<PedidoDTO> getPedidoHome()
    {
        try
        {
            MySqlCommand command = connection.CreateCommand();
            MySqlDataReader reader;

            command.CommandText = "SELECT * FROM pedido INNER JOIN pedido_has_prato ON pedido_has_prato.pedido_idpedido = pedido.idpedido " +
                                  "INNER JOIN prato ON pedido_has_prato.prato_idprato = prato.idprato ORDER BY preco ASC Limit 0, 6";

            connection.Open();

            List<PedidoDTO> Pedido_List = new List<PedidoDTO>();

            reader = command.ExecuteReader();
            while (reader.Read())
            {
                PedidoDTO pedido = new PedidoDTO();

                pedido.Idpedido = Convert.ToInt32(reader["idpedido"]);
                pedido.Telefone = (String)reader["telefone"];
                pedido.Preco_total = Convert.ToDouble(reader["preco_total"]);
                pedido.Endereco = (String)reader["endereco"];
                pedido.Complemento = (String)reader["complemento"];
                pedido.Numero = Convert.ToInt32(reader["numero"]);
                pedido.Bairro = (String)reader["bairro"];
                pedido.Bairro = (String)reader["bairro"];
                pedido.Cep = (String)reader["cep"];
                pedido.Data_do_pedido = Convert.ToDateTime(reader["data_do_pedido"]);
                pedido.Date_de_entrega = Convert.ToDateTime(reader["date_de_entrega"]);
                pedido.Cliente_idcliente = Convert.ToInt32(reader["cliente_idcliente"]);
                pedido.Cidade_idcidade = Convert.ToInt32(reader["cidade_idcidade"]);
                pedido.Forma_de_pagamento_idforma_de_pagamento = Convert.ToInt32(reader["forma_de_pagamento_idforma_de_pagamento"]);
                Pedido_List.Add(pedido);

            }
            connection.Close();
            return Pedido_List;
        }
        catch (Exception ex)
        {
            throw ex;
        }

    }

    /* Pratos no menu a esquerda ULTIMOS PEDIDOS */
    public List<PedidoDTO> getUltimosPedidos()
    {
        try
        {
            MySqlCommand command = connection.CreateCommand();
            MySqlDataReader reader;

            command.CommandText = "SELECT * FROM pedido INNER JOIN pedido_has_prato ON pedido_has_prato.pedido_idpedido = pedido.idpedido " +
                                  "INNER JOIN prato ON pedido_has_prato.prato_idprato = prato.idprato ORDER BY data_do_pedido ASC Limit 0, 6";

            connection.Open();

            List<PedidoDTO> Pedido_List = new List<PedidoDTO>();

            reader = command.ExecuteReader();
            while (reader.Read())
            {
                PedidoDTO pedido = new PedidoDTO();
                pedido.Nome = (String)reader["nome"];
                pedido.Idpedido = Convert.ToInt32(reader["idprato"]);
                Pedido_List.Add(pedido);

            }
            connection.Close();
            return Pedido_List;
        }
        catch (Exception ex)
        {
            throw ex;
        }

    }
}
